/*
  学习目标：setState小结
     1. ✅setState( {属性名:值} )
     场景： 正常更新数据的情况，在不需要连续调用可以使用
     特点： 异步执行，会把所有的 setState 合并起来后
     优点： 只会执行一遍 render 更新
     
     2. ✅setState( (旧的state)=> 新的state )
     场景： 需要依赖上一次的状态，连续更新
     特点： 异步执行，不会把状态合并，而是会依次执行，并且可以拿到每一次执行后的最新状态，
     优点： 只会执行一遍 render 更新
     
     3. ❌setState({属性名:值}, ()=> 新的操作)
     场景：需要依赖上一次的状态，连续更新
     注意：不要再工作中使用
     缺点：
      1. 回调地狱，代码无法维护
      2. 不会合并更新，每一次都会执行 render，频繁操作DOM，造成性能影响
*/
